home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 1 / QRZ Ham Radio Callsign Database - December 1993.iso / ucsd / packet / tcpip / amiga / asrc29k.lha / netuser.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-08  |  2.3 KB  |  130 lines

  1. /* Miscellaneous format conversion subroutines */
  2. #define LINELEN 256
  3. #include <ctype.h>
  4. #include <stdio.h>
  5. #include "global.h"
  6. #include "netuser.h"
  7.  
  8. int Net_error;
  9.  
  10. /* Convert Internet address in ascii dotted-decimal format (44.0.0.1) to
  11.  * binary IP address
  12.  */
  13. int32
  14. aton(s)
  15. register char *s;
  16. {
  17.     int32 n;
  18.  
  19.     register int i;
  20.  
  21.     n = 0;
  22.     for(i=24;i>=0;i -= 8){
  23.         n |= (int32)atoi(s) << i;
  24.         if((s = strchr(s,'.')) == NULLCHAR)
  25.         break;
  26.         s++;
  27.     }
  28.     return n;
  29. }
  30. /* Convert an internet address (in host byte order) to a dotted decimal ascii
  31.  * string, e.g., 255.255.255.255\0
  32.  */
  33. char *
  34. inet_ntoa(a)
  35. int32 a;
  36. {
  37.     static char buf[16];
  38.  
  39.     sprintf(buf,"%u.%u.%u.%u",
  40.         hibyte(hiword(a)),
  41.         lobyte(hiword(a)),
  42.         hibyte(loword(a)),
  43.         lobyte(loword(a)) );
  44.     return buf;
  45. }
  46. /* Convert hex-ascii string to long integer */
  47. long
  48. htol(s)
  49. char *s;
  50. {
  51.     long ret;
  52.     char c;
  53.  
  54.     ret = 0;
  55.     while((c = *s++) != '\0'){
  56.         c &= 0x7f;
  57.         if(c == 'x')
  58.             continue;    /* Ignore 'x', e.g., '0x' prefixes */
  59.         if(c >= '0' && c <= '9')
  60.             ret = ret*16 + (c - '0');
  61.         else if(c >= 'a' && c <= 'f')
  62.             ret = ret*16 + (10 + c - 'a');
  63.         else if(c >= 'A' && c <= 'F')
  64.             ret = ret*16 + (10 + c - 'A');
  65.         else
  66.             break;
  67.     }
  68.     return ret;
  69. }
  70.  
  71. char *
  72. pinet(s)
  73. struct socket *s;
  74. {
  75.     static char buf[80];
  76.     char port[10];
  77.  
  78.     switch(s->port) {
  79.         case 7:            /* Echo data port */
  80.             sprintf(port,"echo");
  81.             break;
  82.         case 9:            /* Discard data port */
  83.             sprintf(port,"discard");
  84.             break;
  85.         case 20:        /* FTP Data port */
  86.             sprintf(port,"ftpd");
  87.             break;
  88.         case 21:        /* FTP Control port */
  89.             sprintf(port,"ftp");
  90.             break;
  91.         case 23:        /* Telnet port */
  92.             sprintf(port,"telnet");
  93.             break;
  94.         case 25:        /* Mail port */
  95.             sprintf(port,"smtp");
  96.             break;
  97.         case 53:        /* Domain Nameserver */
  98.             sprintf(port,"domain");
  99.             break;
  100.         case 79:        /* Finger port */
  101.             sprintf(port,"finger");
  102.             break;
  103.         case 87:        /* TTYLink port */
  104.             sprintf(port,"ttylink");
  105.             break;
  106.         case 109:        /* POP port */
  107.             sprintf(port,"pop");
  108.             break;
  109.         case 119:        /* NNTP port */
  110.             sprintf(port,"nntp");
  111.             break;
  112.         case 520:        /* Routing Information Protocol */
  113.             sprintf(port,"rip");
  114.             break;
  115.         case 1234:        /* Pulled out of the air */
  116.             sprintf(port,"remote");
  117.             break;
  118.         case 3600:        /* chatnode socket */
  119.             sprintf(port,"chatnode");
  120.             break;
  121.         default:
  122.             sprintf(port,"%u",s->port);
  123.             break;
  124.     }
  125.  
  126.     sprintf(buf,"%s:%s",inet_ntoa(s->address),port);
  127.     return buf;
  128. }
  129.  
  130.